package com.collectiondemo;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class CollectionDemo4 {
    public static void main(String[] args) {
        /*
        迭代器细节注意点:
            1，报错NoSuchElementException
            2，迭代器遍历完毕，指针不会复位
            3，循环中只能用一次next方法
            4，迭代器遍历时，不能用集合的方法进行增加或者删除
         */
        //1.创建集合并添加元素
        Collection<String> collection=new ArrayList<>();
        collection.add("aaa");
        collection.add("bbb");
        collection.add("ccc");
        collection.add("ddd");

        //2.获取迭代器对象
        //迭代器就好比是一个箭头，默认指向集合的0索引处
        Iterator<String> iterator = collection.iterator();

        //3.利用循环获取集合中的每一个元素
        while (iterator.hasNext()){
            //4.next方法的两件事情:获取元素并移动指针
            String str = iterator.next();
            System.out.println(str);
        }


        //5.当上面循环结束之后，迭代器的指针已经指向了最后没有元素的位置，报错NoSuchElementException
        //System.out.println(iterator.next());

        //6.迭代器遍历完毕，指针不会复位
        System.out.println(iterator.hasNext());
        System.out.println(iterator.hasNext());
        System.out.println(iterator.hasNext());

        //如果我们要继续第二次遍历集合，只能再次获取一个新的迭代器对象
    }
}
